#include #include #include using namespace std; void displayGameBoard(int xMoves, int oMoves) { for(int i = 1; i <= 9; i++) { //type cast if((xMoves & (int)pow(2.0,i)) == (int)pow(2.0,i)) { cout << "X"; } else if((oMoves & (int)pow(2.0,i)) == (int)pow(2.0,i)) { cout << "O"; } else { cout << i; } if(i%3 == 0 && i != 9) { cout << endl << "-----" << endl; } else if (i == 9) { cout << endl << endl; } else { cout << "|"; } } } int getMove(int xMoves, int oMoves) { int result = 0; do { cin >> result; } while(result > 9 || result < 1 || (xMoves & (int)pow(2.0,result)) == (int)pow(2.0,result) || (oMoves & (int)pow(2.0,result)) == (int)pow(2.0,result) ); return result; } void main() { int xMoves = 0; int oMoves = 0; bool gameOver = false; bool xTurn = true; while(!gameOver) { displayGameBoard(xMoves, oMoves); cout << ((xTurn)? "X Move? " : "O Move>? "); int newMove = getMove(xMoves, oMoves); if(xTurn) { xMoves += pow(2.0,newMove); } else { oMoves += pow(2.0,newMove); } //check for win // change gameOver xTurn = !xTurn; } }